package cn.wh.beans.factory.support;

import cn.wh.beans.BeansException;
import cn.wh.beans.factory.config.BeanDefinition;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

/**
 * @author: wh
 * @create: 2022-08-19 17:20
 * @description 实例化策略
 **/
public interface InstantiationStrategy {
    Object instantiate(BeanDefinition beanDefinition, String beanName, Constructor ctor, Object[] args) throws BeansException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException;
}
